class FILTERGRAPH_DIGRAPH_VIEW{NTP} < $RO_DIGRAPH{NTP}
****
Simplification of FILTERGRAPH_DIGRAPH_VIEW


Ancestors
$RO_DIGRAPH{_} $GRAPH{_,_} $STR $ELT{_}
$ELT FILTERGRAPH_DIGRAPH_VIEW{_,_} RO_DIGRAPH_INCL{_}



Public


Features
copy: $DIGRAPH{NTP} .. Included as copy
create(m:GTP,np:ROUT{NTP}:BOOL): SAME .. Included as create
**** Create a subgraph of "m", which includes all nodes that pass the node filter "np"
create(m:GTP,np:ROUT{NTP}:BOOL,ep:ROUT{DIEDGE{NTP}}:BOOL): SAME .. Included as create
**** Create a subgraph of "m". It consists of nodes that pass the node filter "np" and edges that pass the edge filter, whose ends pass the node filter. Nodes n that belong to "m" and np.call(n) = true Edges e (1) m.has_edge(e)
_________(2)_np.call(e.first)_and_np.call(e.second)
_________(3)_ep.call(e)
equals(g: $RO_DIGRAPH{NTP}):BOOL .. Included as equals
**** True if both have the same set of nodes and edges
has(n: NTP): BOOL .. Included as has
has_edge(e: DIEDGE{NTP}): BOOL .. Included as has_edge
**** An edge exists here if and only if it exists in the source, both its end points pass the node filter and the edge itself passes the edge filter
has_node(n: NTP): BOOL .. Included as has_node
is_empty: BOOL .. Included as is_empty
n_adjacent(n:NTP): INT .. Included as n_adjacent
n_edges: INT .. Included as n_edges
n_incoming(n: NTP): INT .. Included as n_incoming
**** Compute the number of edges by actually iterating over the edges and returning the resulting number found
n_nodes: INT .. Included as n_nodes
n_outgoing(n: NTP): INT .. Included as n_outgoing
**** Compute the number of outgoing edges by actually iterating over them
size: INT .. Included as size
str: STR .. Included as str
**** Print out the graph using the bound routine "f" for the nodes

Iters
adjacent!(once n: NTP): NTP .. Included as adjacent!
**** Adjacent is aliased to "outgoing"
edge!: DIEDGE{NTP} .. Included as edge!
elt!: NTP .. Included as elt!
**** Returns the nodes of the graph
incoming!(once n: NTP): NTP .. Included as incoming!
node!: NTP .. Included as node!
**** Yield all the nodes in the source that pass the filter node predicate
outgoing!(once n: NTP): NTP .. Included as outgoing!
**** Yield all the outgoing nodes from node "n". Yield only nodes which pass the filter and are connected by an edge that passes the filter


Private

attr ep: ROUT{DIEDGE{NTP}}: BOOL; .. Included as ep
attr ep: ROUT{DIEDGE{NTP}}: BOOL; .. Included as ep
node_str(n: NTP): STR .. Included as node_str
**** There should not be void nodes in the graph!
attr np: ROUT{NTP}: BOOL; .. Included as np
attr np: ROUT{NTP}: BOOL; .. Included as np
attr source:GTP; .. Included as source
attr source:GTP; .. Included as source

The Sather Home Page